package com.sinosoft.sinopay.service.merchant.biz.service;

import com.sinosoft.sinocloud.platform.common.web.pagequery.PageGrid;
import com.sinosoft.sinocloud.platform.common.web.pagequery.PageQueryModel;
import com.sinosoft.sinopay.merchants.dto.MerchantDTO;
import com.sinosoft.sinopay.merchants.dto.MerchantSignInfo;
import com.sinosoft.sinopay.merchants.dto.PayMerchantDTO;
import com.sinosoft.sinopay.service.merchant.generated.model.PayMerchant;

import java.util.List;
import java.util.Map;

/**
 * 【商户信息服务接口类】
 * @author chenxin
 * @version V1.0
 * @date 2016-11-23 上午11:03
 */
public interface MerchantInfoCoreService {

    /**
     * 获取全部的商户签名信息
     * @return   key为商户code，value为商户signkey
     */
     Map<String,String>  getAllMerchantSignKeys();

    /**
     * 根据页码和参数获取当页商户信息集合
     * @return
     */
     PageGrid getMerchantMsgForPageAndDate(PageQueryModel pageQueryModel);


    /**
     * 根据sid查询商户详情信息
     * @return  商户详情信息
     */
    MerchantSignInfo getMerchantForSid(Integer sid);

    /**
     * 新增商户信息
     * @return  商户信息Sid
     */
    String addMerchantMsg(PayMerchantDTO payMerchant);


    /**
     * 更新商户信息
     * @return  true = 更新成功; false = 更新失败
     */
    String updateMerchantMsg(PayMerchantDTO payMerchant);

    /**
     * 删除商户信息
     * @return  删除成功; false = 删除失败
     */
    boolean deleteMerchantMsg(Integer sid);

    /**
     *查询所有商户名和商户编码
     *@return  商户名和商户编码
     */
    List<MerchantDTO> selectMerchantName();

    /**
     *根据商户CODE查询商户信息
     *@return 商户详情信息
     */
    MerchantSignInfo selectMerchantByCode(String merchantCode);

}
